﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Core;

namespace Crosland.Automotriz.Data.Dao.Linq
{
   public class clsT_Log_Requerimiento_AsignadoDAO
    {

       private AutomotrizEntities ContextoDeObjs = new AutomotrizEntities();


       public bool Insertar(T_LOG_REQUERIMIENTO_ASIGNADO Obj)
       {
           try
           {
               ContextoDeObjs.AddObject("T_LOG_REQUERIMIENTO_ASIGNADO", Obj);
               ContextoDeObjs.SaveChanges();
           }
           catch (Exception ex)
           {
               throw ex;
           }
           return true;
       }

       public bool Modificar(T_LOG_REQUERIMIENTO_ASIGNADO obj)
       {
           try
           {
               ContextoDeObjs.AttachTo("T_LOG_REQUERIMIENTO_ASIGNADO", obj);
               ContextoDeObjs.ObjectStateManager.ChangeObjectState(obj, System.Data.EntityState.Modified);
               ContextoDeObjs.SaveChanges();
           }
           catch (Exception ex)
           {
               throw ex;

           }
           return true;
       }






       public List<T_LOG_REQUERIMIENTOS> ListaRequerimientosAsignados()
       {
           List<T_LOG_REQUERIMIENTOS> list = new List<T_LOG_REQUERIMIENTOS>();
           try
           {

               var texSQl ="select tlr.ID_LOG_REQUERIMIENTO, "+
                            "tlr.FECHA_REGISTRO,tlr.ID_AREA, "+
                            "tlr.ID_TIPO_PROCESO,tlr.ID_ESTADO, "+
                            "tlr.DESCRIPCION,tlra.RUTA_ARCHIVO, "+
                            "tlra.FECHA_INICIO,tlra.FECHA_FIN, "+
                            "DIAS_TOTAL=DATEDIFF(day,tlra.FECHA_INICIO,tlra.FECHA_FIN), "+
                            "DIAS_FALTANTE=case when GETDATE()> tlra.FECHA_FIN then 0 else  DATEDIFF(day,GETDATE(),tlra.FECHA_FIN) end, " +
                            "DIAS_PORCENTAJE=DATEDIFF(day,tlra.FECHA_INICIO,tlra.FECHA_FIN)-case when GETDATE()> tlra.FECHA_FIN then 0 else  DATEDIFF(day,GETDATE(),tlra.FECHA_FIN) end " +
                            "from T_LOG_REQUERIMIETO tlr "+
                            "inner join T_LOG_REQUERIMIENTO_ASIGNADO tlra on tlr.ID_LOG_REQUERIMIENTO=tlra.ID_LOG_REQUERIMIENTO";
               var q = ContextoDeObjs.ExecuteStoreQuery<T_LOG_REQUERIMIENTOS>(texSQl);
               list = q.ToList();
           }
           catch (Exception ex)
           {

               throw ex;
           }

           return list;
       }

    }
}
